package com.hxx.day1;

import org.junit.Test;

import java.io.File;
import java.util.Arrays;

public class TestDemo3 {

    @Test
    public void testMethod() {
        //method(2);
        double n = sum(1.0, 2);
        System.out.println(n);
    }

    public void method(int key) {
        switch (key){
            case 1:
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
                break;
            default:
                System.out.println("default");
                break;
        }
    }

    /**
     * 求和:两个参数
     * @return 和
     */
    public int sum(int i,int  j){
        return i+j;
    }
    public int sum(int i,int  j,int k){
        return i+j+k;
    }
    public long sum(int i,long  j){
        return i+j;
    }
    public long sum(long i,int  j){
        return i+j;
    }
    public double sum(double i,int  j){
        return i+j;
    }

    //-----------------扩展--------------------

    @Test
    public void testMethod1() {
        //调用对应的方法，如果找不到对应参数的方法才去调用可变参数的方法
        int n = sum(1,2);
        System.out.println(n);
    }
    /**
     * 可变参数只能出现一次，并且，必须放在最后
     * @param i
     * @return
     */
    public int sum(int... i){
        return i.length;
    }

    /**
     * 递归：方法调用自身
     */
    @Test
    public void testRec() {
        //可变参数的调用
        System.out.println(rec(5));
    }

    /**
     * 递归:5+4+3+2+1
     * 5+(5-1)
     * 4+(4-1)
     * 3+(3-1)
     * 2+(2-1)
     * 1
     */
    public int rec(int n){
        if(n==1){
            return 1;
        }else{
            return n+rec(n-1);
        }
    }

    @Test
    public void testRec1() {
        File file = new File("d:/video");
        testRec1(file);
    }

    public static void main(String[] args) {
        File file = new File("d:/video");
        new TestDemo3().testRec1(file);
    }
    /**
     * 递归:遍历目录
     */
    public void testRec1(File  file) {
        File[] files = file.listFiles();
        Arrays.stream(files).forEach(f-> System.out.println(f.getName()));
        for (File file1 : files) {
            if (file1.isDirectory()){
                System.out.println(file1.getName());
                testRec1(file1);
            }
        }
    }
}



























